package com.edgelight.controller;

import com.edgelight.dao.NewsMapper2;
import com.edgelight.pojo.News;
import com.edgelight.pojo.req.NewReq;
import com.edgelight.pojo.resp.BaseResp;
import com.edgelight.service.NewsService2;
import com.edgelight.utils.UploadUtils;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.nio.channels.Pipe;
import java.util.BitSet;
import java.util.Map;

/**用户上传图片组
 * @author Screncea
 */
@RestController
@RequestMapping("/new")
public class NewsController2 {
    @Autowired
    NewsService2 newsService2;
    /**用户发布新闻新增多张图片
     * @param multipartFile 前台传入的图片的multipartFile
     * @return 上传的图片地址
     */
    @PostMapping("/image")
    public String imagesUpload(@RequestParam("file") MultipartFile multipartFile){
        //调用七牛云图片上传方法
        String url = UploadUtils.upload(multipartFile);
        return url;
    }

    /**新增新闻
     * @param news
     * @return 结果集
     */
    @PostMapping("/editor")
    public BaseResp editorNew(@RequestBody NewReq news) {

        return newsService2.editorNew(news);
    }

    /**根据分类查找新闻
     * @return 结果集
     */
    @PostMapping("/findNewsByTypeId")
    @ApiOperation(value="根据新闻类型id查询新闻内容")
    public BaseResp findNewsByTypeId( @RequestParam("id") Integer id){
        System.out.println(id);
        return newsService2.findNewsByTypeId(id);
    }

    /**根据新闻热度查询新闻封面展示轮播图
     * @return 结果集(图片地址集合)
     */
    @PostMapping("/findImage")
    @ApiOperation(value="查询新闻点击量前五的新闻封面")
    public BaseResp findImage(){
       return newsService2.findImage();
    }

    /**根据新闻id查询新闻内容并且访问量+1
     * @param id 新闻id
     * @return 结果集(新闻内容)
     */
    @PostMapping("/findNewById")
    @ApiOperation(value="通过新闻id查询新闻内容,并且访问量+1")
    public BaseResp findOneNewById(@RequestParam("id") Integer id){
        return newsService2.findOneNewById(id);
    }

    /**前端首页展示热度前8的新闻
     * @return 新闻实体类的结果集
     */
    @PostMapping("/findMainNews")
    @ApiOperation(value="前端首页展示热度前8的新闻")
    public BaseResp  findMainNews (){
        return newsService2.findMainNews();
    }
}
